As depicted in FIG. 1, a functional network may be represented as a DAG that is constructed of interposed levels of data and functional nodes. The boxes labelled A, B, D, E, F, G, and H correspond to functional nodes, or transformations, of the DAG. The circles labelled x, y, and z correspond to inputs to the DAG. The circles labelled a, b0, b1, d, e, f, and g correspond to values derived as intermediate results during the execution of the functional nodes. It should be realized that the functional network depicted in FIG. 1 represents a typical, and not a limiting, structure of a DAG.
In many conventional graphics and analysis systems data is operated upon by a set of such transformations so as to arrive at a desired result. Often, the transformations are repeated several times, while altering one or more parameters that define the transformations. After the inputs to the transformations are altered, a recomputation of the data becomes necessary to reflect the alteration.
A problem is encountered if intermediate values obtained from one computation, such as those represented by the circles a, b0, b1, and d, are not retained, in that the entire set of transformations must be recomputed. This is obviously undesirable in that it is computationally expensive.
If the intermediate values are maintained, then another problem is presented in how to most efficiently manage the retained intermediate values. In order to be of practical use, the management technique should in itself not be computationally expensive. Also, the technique should preferably operate in an efficient manner such that a determination of the existence of, and access to, the input data and intermediate values can occur in a rapid manner.
It is thus one object of the invention to provide an efficient technique for managing data inputs and intermediate values during the execution of a functional network.
It is a further object of the invention to provide an efficient technique to compute unique signatures, each of which is associated with a data input or an intermediate value, the signatures being employed subsequently to determine if the data input or intermediate value exist and, if so, to access same.
It is a still further object of the invention to provide method and apparatus that represents the result of a computation as a function of the inputs to the computation.